//package com.xxl.api.admin.core.util;
//
//import com.fasterxml.jackson.core.JsonGenerationException;
//import com.fasterxml.jackson.core.JsonParseException;
//import com.fasterxml.jackson.core.type.TypeReference;
//import com.fasterxml.jackson.databind.JsonMappingException;
//import com.fasterxml.jackson.databind.ObjectMapper;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//
//import java.io.IOException;
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * Jackson util
// *
// * 1、obj need private and set/get；
// * 2、do not support inner class；
// *
// * @author xuxueli 2015-9-25 18:02:56
// */
//public class JacksonUtil {
//	private static Logger logger = LoggerFactory.getLogger(JacksonUtil.class);
//
//    private final static ObjectMapper objectMapper = new ObjectMapper();
//    public static ObjectMapper getInstance() {
//        return objectMapper;
//    }
//
//    /**
//     * bean、array、List、Map --> json
//     *
//     * @param obj
//     * @return json string
//     * @throws Exception
//     */
//    public static String writeValueAsString(Object obj) {
//    	try {
//			return getInstance().writeValueAsString(obj);
//		} catch (JsonGenerationException e) {
//			logger.error(e.getMessage(), e);
//		} catch (JsonMappingException e) {
//			logger.error(e.getMessage(), e);
//		} catch (IOException e) {
//			logger.error(e.getMessage(), e);
//		}
//        return null;
//    }
//
//    /**
//     * string --> bean、Map、List(array)
//     *
//     * @param jsonStr
//     * @param clazz
//     * @return obj
//     * @throws Exception
//     */
//    public static <T> T readValue(String jsonStr, Class<T> clazz) {
//    	try {
//			return getInstance().readValue(jsonStr, clazz);
//		} catch (JsonParseException e) {
//			logger.error(e.getMessage(), e);
//		} catch (JsonMappingException e) {
//			logger.error(e.getMessage(), e);
//		} catch (IOException e) {
//			logger.error(e.getMessage(), e);
//		}
//    	return null;
//    }
//    public static <T> T readValueRefer(String jsonStr, TypeReference typeReference) {
//    	try {
//			return getInstance().readValue(jsonStr, typeReference);		// new TypeReference<T>() { }
//		} catch (JsonParseException e) {
//			logger.error(e.getMessage(), e);
//		} catch (JsonMappingException e) {
//			logger.error(e.getMessage(), e);
//		} catch (IOException e) {
//			logger.error(e.getMessage(), e);
//		}
//    	return null;
//    }
//
//    public static void main(String[] args) {
//		try {
//			Map<String, String> map = new HashMap<String, String>();
//			map.put("aaa", "111");
//			map.put("bbb", "222");
//			String json = writeValueAsString(map);
//			System.out.println(json);
//			System.out.println(readValue(json, Map.class));
//		} catch (Exception e) {
//			logger.error(e.getMessage(), e);
//		}
//	}
//}
